using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("TargetReticleManager")]
	public class TargetReticleManager : MonoBehaviour
	{
		public static int MAX_TARGET_ARROW_LINKS => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "TargetReticleManager", "MAX_TARGET_ARROW_LINKS");

		public static float LINK_Y_LENGTH => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "TargetReticleManager", "LINK_Y_LENGTH");

		public static float LENGTH_BETWEEN_LINKS => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "TargetReticleManager", "LENGTH_BETWEEN_LINKS");

		public static float LINK_PARABOLA_HEIGHT => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "TargetReticleManager", "LINK_PARABOLA_HEIGHT");

		public static float LINK_ANIMATION_SPEED => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "TargetReticleManager", "LINK_ANIMATION_SPEED");

		public static float STARTING_X_ROTATION_FOR_DEFAULT_ARROW => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "TargetReticleManager", "STARTING_X_ROTATION_FOR_DEFAULT_ARROW");

		public TARGET_RETICLE_TYPE m_ReticleType => method_2<TARGET_RETICLE_TYPE>("m_ReticleType");

		public static float FRIENDLY_HERO_ORIGIN_Z_OFFSET => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "TargetReticleManager", "FRIENDLY_HERO_ORIGIN_Z_OFFSET");

		public static float LINK_FADE_OFFSET => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "TargetReticleManager", "LINK_FADE_OFFSET");

		public bool m_isEnemyArrow => method_2<bool>("m_isEnemyArrow");

		public bool m_isActive => method_2<bool>("m_isActive");

		public bool m_showArrow => method_2<bool>("m_showArrow");

		public int m_originLocationEntityID => method_2<int>("m_originLocationEntityID");

		public int m_sourceEntityID => method_2<int>("m_sourceEntityID");

		public int m_numActiveLinks => method_2<int>("m_numActiveLinks");

		public float m_linkAnimationZOffset => method_2<float>("m_linkAnimationZOffset");

		public Vector3 m_targetArrowOrigin => method_2<Vector3>("m_targetArrowOrigin");

		public Vector3 m_remoteArrowPosition => method_2<Vector3>("m_remoteArrowPosition");

		public GameObject m_arrow => method_3<GameObject>("m_arrow");

		public GameObject m_damageIndicator => method_3<GameObject>("m_damageIndicator");

		public GameObject m_hunterReticle => method_3<GameObject>("m_hunterReticle");

		public GameObject m_questionMark => method_3<GameObject>("m_questionMark");

		public List<GameObject> m_targetArrowLinks => method_3<Class271<GameObject>>("m_targetArrowLinks")?.method_25();

		public bool m_useHandAsOrigin => method_2<bool>("m_useHandAsOrigin");

		public int ArrowSourceEntityID => method_11<int>("get_ArrowSourceEntityID", Array.Empty<object>());

		public TargetReticleManager(IntPtr address, string className)
			: base(address, className)
		{
		}

		public TargetReticleManager(IntPtr address)
			: this(address, "TargetReticleManager")
		{
		}

		public static TargetReticleManager Get()
		{
			return MonoClass.smethod_15<TargetReticleManager>(TritonHs.MainAssemblyPath, "", "TargetReticleManager", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public bool IsActive()
		{
			return method_11<bool>("IsActive", Array.Empty<object>());
		}

		public bool IsLocalArrow()
		{
			return method_11<bool>("IsLocalArrow", Array.Empty<object>());
		}

		public bool IsEnemyArrow()
		{
			return method_11<bool>("IsEnemyArrow", Array.Empty<object>());
		}

		public bool IsLocalArrowActive()
		{
			return method_11<bool>("IsLocalArrowActive", Array.Empty<object>());
		}

		public bool IsEnemyArrowActive()
		{
			return method_11<bool>("IsEnemyArrowActive", Array.Empty<object>());
		}

		public void ShowBullseye(bool show)
		{
			method_8("ShowBullseye", show);
		}

		public void CreateFriendlyTargetArrow(Entity originLocationEntity, Entity sourceEntity, bool showDamageIndicatorText, bool showArrow, string overrideText, bool useHandAsOrigin)
		{
			method_8("CreateFriendlyTargetArrow", originLocationEntity, sourceEntity, showDamageIndicatorText, showArrow, overrideText, useHandAsOrigin);
		}

		public void AttachLinksToAppropriateReticle()
		{
			method_8("AttachLinksToAppropriateReticle");
		}

		public void CreateEnemyTargetArrow(Entity originEntity)
		{
			method_8("CreateEnemyTargetArrow", originEntity);
		}

		public void DestroyEnemyTargetArrow()
		{
			method_8("DestroyEnemyTargetArrow");
		}

		public void DestroyFriendlyTargetArrow(bool isLocallyCanceled)
		{
			method_8("DestroyFriendlyTargetArrow", isLocallyCanceled);
		}

		public void UpdateArrowPosition()
		{
			method_8("UpdateArrowPosition");
		}

		public void SetRemotePlayerArrowPosition(Vector3 newPosition)
		{
			method_8("SetRemotePlayerArrowPosition", newPosition);
		}

		public void DestroyCurrentArrow(bool isLocallyCanceled)
		{
			method_8("DestroyCurrentArrow", isLocallyCanceled);
		}

		public void DisableCollidersForUntargetableCards(Card sourceCard)
		{
			method_8("DisableCollidersForUntargetableCards", sourceCard);
		}

		public void EnableCollidersThatWereDisabled()
		{
			method_8("EnableCollidersThatWereDisabled");
		}

		public void CreateTargetArrow(bool isEnemyArrow, int originLocationEntityID, int sourceEntityID, string damageIndicatorText, bool showArrow, bool useHandAsOrigin)
		{
			method_8("CreateTargetArrow", isEnemyArrow, originLocationEntityID, sourceEntityID, damageIndicatorText, showArrow, useHandAsOrigin);
		}

		public void PreloadTargetArrows()
		{
			method_8("PreloadTargetArrows");
		}

		public void DestroyTargetArrow(bool destroyEnemyArrow, bool isLocallyCanceled)
		{
			method_8("DestroyTargetArrow", destroyEnemyArrow, isLocallyCanceled);
		}

		public void LoadArrowCallback(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("LoadArrowCallback", assetRef, go, callbackData);
		}

		public void LoadQuestionCallback(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("LoadQuestionCallback", assetRef, go, callbackData);
		}

		public void LoadLinkCallback(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("LoadLinkCallback", assetRef, go, callbackData);
		}

		public void LoadDamageIndicatorCallback(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("LoadDamageIndicatorCallback", assetRef, go, callbackData);
		}

		public void LoadHunterReticleCallback(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("LoadHunterReticleCallback", assetRef, go, callbackData);
		}

		public int NumberOfRequiredLinks(float lengthOfArrow)
		{
			return method_11<int>("NumberOfRequiredLinks", new object[1] { lengthOfArrow });
		}

		public GameObject GetAppropriateReticle()
		{
			return method_14<GameObject>("GetAppropriateReticle", Array.Empty<object>());
		}

		public Transform GetAppropriateArrowMeshTransform()
		{
			return method_14<Transform>("GetAppropriateArrowMeshTransform", Array.Empty<object>());
		}

		public float GetStartingXRotationForArrowMesh()
		{
			return method_11<float>("GetStartingXRotationForArrowMesh", Array.Empty<object>());
		}

		public void UpdateTargetArrowLinks(float lengthOfArrow)
		{
			method_8("UpdateTargetArrowLinks", lengthOfArrow);
		}

		public void SetLinkAlpha(GameObject linkGameObject, float alpha)
		{
			method_8("SetLinkAlpha", linkGameObject, alpha);
		}

		public void UpdateDamageIndicator()
		{
			method_8("UpdateDamageIndicator");
		}

		public void ShowDamageIndicator(bool show)
		{
			method_8("ShowDamageIndicator", show);
		}

		public void UpdateArrowOriginPosition()
		{
			method_8("UpdateArrowOriginPosition");
		}

		public void ActivateArrow(bool active)
		{
			method_8("ActivateArrow", active);
		}

		public void ShowArrow(bool show)
		{
			method_8("ShowArrow", show);
		}
	}
}
